/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package session.TX;

import entity.establishment.OutletFood;
import entity.tx.Cuisine;
import helper.tx.Helper_Area;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author Chen Zhe, Lu Xiaodi
 */
@Remote
public interface OutletSBRemote {
    
    
    public String addNewOutlet(
            Long stakeholderID,
            Long socialID,
            double latitude,
            double longitude,
            String outletName,
            String blkNo,
            String streetName,
            String unitName,
            String postalCode,
            String phoneNo,
            String websiteURL,
            String email,
            String priceRange,
            String image,
            String buildingName,
            String operatingHrs
      );
    
    
    
    
    public void deleteOutlet(java.lang.Long outletId);
    
    
    

    public java.util.List<entity.establishment.OutletFood> getAllOutlets();

    public List<Cuisine> getCuisineByOutlet(Long outletID);
    public List<Cuisine> getAllCuisines();
    public void changeOutletCuisine(Long outletID, List<String> newCuisines);
    
    public java.lang.Boolean getAutoConfirm(java.lang.Long outletId);

    public java.lang.Integer getLeadTime(java.lang.Long outletId);

    public java.lang.Integer getBookingWindow(java.lang.Long outletId);

    public java.lang.Double getNoShowPenalty(java.lang.Long outletId);

    public entity.establishment.OutletFood getOutlet(java.lang.Long outletId);

    public java.util.List<entity.establishment.OutletFood> getSpecificOutlet(java.lang.String o);

    public java.lang.String updateGeneralInfo(java.lang.Long outletId, java.lang.Double noShowFee, java.lang.Boolean autoConfirm, java.lang.Integer leadTime, java.lang.Integer bookingWindow);

    public java.lang.String getRandomString(int length);

    public java.util.List<entity.tx.FoodItem> getFoodMenu(java.lang.Long outletId);

    public java.util.List<entity.tx.FoodItem> getFeaturedFoodItems(java.lang.Long outletId);

    public java.lang.Long searchOutletIdByStr(java.lang.String[] s);
    
    public List<OutletFood> getOutletByStakeholder(String StakeholderID);
    
    //Outlet Manager Methods
    public List<String> getOutletManagerEmailsbyOutlet(Long outletID);
    public String addManagerToOutlet(String managerEmail, Long outletID);
    public String removeManagerFromOutlet(String managerEmail, Long outletID);
    public List<OutletFood> retrieveOutletsByManager(String email);

    public java.lang.String getStakeholderName(java.lang.Long outletId);

    public java.util.List<helper.tx.Helper_Outlet> getAllOutletsHelper();

    public java.lang.String editOutlet(java.lang.Long outletId, double latitude, double longitude, java.lang.String outletName, java.lang.String blkNo, java.lang.String streetName, java.lang.String unitName, java.lang.String postalCode, java.lang.String phoneNo, java.lang.String websiteURL, java.lang.String email, java.lang.String priceRange, java.lang.String image, java.lang.String buildingName, java.lang.String operatingHrs);
    
    

}
